'''

    如果except后不跟任何的内容，则此时它会捕获到所有的异常
    如果except后跟着一个异常的类型，那么此时它只会捕获该类型的异常

    Exception 是所有异常类的父类，所以如果except后跟的是Exception，他也会捕获到所有的异常

'''
print('异常出现前...')
l = []
try:
    print(10/0)
except NameError:
    # 如果except后不跟任何的内容，则此时它会捕获到所有的异常
    # 如果except后跟着一个异常的类型，那么此时它只会捕获该类型的异常
    print('出现 NameError 异常')
except ZeroDivisionError:
    print('出现 ZeroDivisionError 异常')
except IndexError:
    print('出现 IndexError 异常')
except Exception as e:
    # Exception 是所有异常类的父类，所以如果except后跟的是Exception，他也会捕获到所有的异常
    print('未知异常', e, type(e))
finally:
    print('无论是否出现异常，该子句都会执行')
print('异常出现后')